var pbCountForm;
var testPanel;
var newWin = null;
var pl;
var updateWin = null;
var companystore;

var addSystemAccountWin;

Ext.onReady(function() {
	var displayStatusName = ['暂存', '启用', '停用'];

	// 状态的下拉框
	var combox = new Ext.form.ComboBox({
				fieldLabel : '状态',
				hiddenName : 'state',
				store : new Ext.data.SimpleStore({
							fields : ['abbr', 'state'],
							data : Ext.exampledata.state1
						}),
				displayField : 'state',
				typeAhead : true,
				valueField : 'abbr',
				mode : 'local',
				triggerAction : 'all',
				selectOnFocus : true,
				anchor : '90%',
				width : 150
			});

	// 日期控件
	Ext.apply(Ext.form.VTypes, {
		daterange : function(val, field) {
			var date = field.parseDate(val);

			if (!date) {
				return;
			}
			if (field.startDateField
					&& (!this.dateRangeMax || (date.getTime() != this.dateRangeMax
							.getTime()))) {
				var start = Ext.getCmp(field.startDateField);
				start.setMaxValue(date);
				start.validate();
				this.dateRangeMax = date;
			} else if (field.endDateField
					&& (!this.dateRangeMin || (date.getTime() != this.dateRangeMin
							.getTime()))) {
				var end = Ext.getCmp(field.endDateField);
				end.setMinValue(date);
				end.validate();
				this.dateRangeMin = date;
			}
			return true;
		}
	});

	// 数据源
	companystore = new Ext.data.Store({
				url : 'PbCompanyManage!getAllPbCompany.action',
				reader : new Ext.data.JsonReader({
							root : 'result.result',
							// id: 'pbCompany',
							totalProperty : 'result.totalCount'
						}, [{
									name : 'company_code',
									mapping : 'company_code'
								}, {
									name : 'company_chinese_code',
									mapping : 'company_chinese_code'
								}, {
									name : 'address',
									mapping : 'address'
								}, {
									name : 'phone',
									mapping : 'phone'
								}, {
									name : 'start_date',
									mapping : 'start_date'
								}, {
									name : 'status',
									mapping : 'status'
								}])
			});

	var sm = new Ext.grid.CheckboxSelectionModel();
	var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm, {
				header : '客户代码',
				dataIndex : 'company_code',
				width : 80
			}, {
				header : '客户中文名称',
				dataIndex : 'company_chinese_code'
			}, {
				header : '地址',
				dataIndex : 'address'
			}, {
				header : '电话',
				dataIndex : 'phone',
				width : 80
			}, {
				header : '注册日期从',
				dataIndex : 'start_date',
				width : 100
			}, {
				header : '状态',
				dataIndex : 'status',
				width : 80,
				renderer : function(value, p, record) {
					if (value == 0) {
						return displayStatusName[0];
					} else if (value == 5) {
						return displayStatusName[1];
					} else {
						return displayStatusName[2];
					}
				}
			}, {
				header : '操作',
				dataIndex : 'status',
				width : 100,
				renderer : function(v, p, record) {
					if (v == 0) {
						return "<input type='button' value='启用' onClick=\"InsertManager("
								+ record.data.company_code
								+ ",'"
								+ record.data.company_chinese_code + " ')\">";
					} else if (v == 9) {
						return "<input type='button' value='启用' onClick=\"test2("
								+ record.data.company_code + " )\">";
					} else {
						return "<input type='button'  value='停用' onClick=\"ShowUpdate("
								+ record.data.company_code
								+ ","
								+ record.data.status + " )\">";

					}
				}
			}]);

	var searchPanel = new Ext.form.FormPanel({
		frame : true,

		anchor : '90%',
		buttonAlign : 'right',
		title : "客户注册",
		id : 'addPanelForm',
		bodyStyle : 'padding:5px 5px 0',
		url : '',
		items : [{
			layout : 'column',
			items : [{
						columnWidth : .5,
						layout : 'form',
						items : [{
									xtype : 'textfield',
									fieldLabel : '客户编号',
									name : 'pb_company.company_code',
									id : 'pb_company.company_code',
									anchor : '90%',
									emptyText : '请输入编号'
								}, {
									fieldLabel : '注册日期从',
									anchor : '90%',
									name : 'startdt',
									id : 'startdt',
									xtype : 'datefield',
									vtype : 'daterange',
									endDateField : 'enddt'
								}, {
									columnWidth : .5,
									layout : 'form',
									items : [combox]
								}]
					}, {
						columnWidth : .5,
						layout : 'form',
						items : [{
									xtype : 'textfield',
									fieldLabel : '客户中文名称',
									name : 'pb_company. company_chinese_code',
									id : 'pb_company. company_chinese_code',
									anchor : '90%',
									emptyText : '请输入名称'
								}, {
									fieldLabel : '注册时期到',
									anchor : '90%',
									name : 'enddt',
									id : 'enddt',
									xtype : 'datefield',
									vtype : 'daterange',
									startDateField : 'startdt'
								}]
					}],
			buttons : [{
				text : '新增',
				id : '_btnSearch',
				handler : function() {
					newWin = new Ext.Window({
								title : '新客户注册',
								width : 800,
								modal : true,
								items : [companyOperation(-1, -1, companystore,
										true)],
								buttons : [{
											text : '确认',
											id : 'save',
											handler : function() {
												if (doupdate()) {
													newWin.destroy();
												}
											}
										}, {
											text : '取消',
											id : 'cancel',
											handler : function() {
												newWin.destroy()
											}
										}]
							});
					newWin.show();
				}
			}, {
				text : '查询',
				id : '_btnSearch',
				handler : function() {
					var sd = searchPanel.findById('startdt').getValue();
					if (sd != null && sd != "") {
						sd = sd.format('Y-m-d');
					} else {
						sd = null;
					}
					var ed = searchPanel.findById('enddt').getValue();
					if (ed != null && ed != "") {
						ed = ed.format('Y-m-d');
					} else {
						ed = null;
					}
					companystore.on('beforeload', function() {
						companystore.baseParams = {
							company_code : searchPanel
									.findById('pb_company.company_code')
									.getValue(),
							company_chinese_code : searchPanel
									.findById('pb_company. company_chinese_code')
									.getValue(),
							state : combox.getValue(),
							startdt : sd,
							enddt : ed
						}
					});
					companystore.reload();
				}
			}]
		}]
	});

	searchPanel.render(Ext.getBody());

	var accountGrid = new Ext.grid.GridPanel({
				height : document.body.clientHeight
						- Ext.getCmp('addPanelForm').getInnerHeight()
						- Ext.getCmp('addPanelForm').getFrameHeight(),

				anchor : '90%',
				id : 'pbCompanyGride',
				bbar : new Ext.PagingToolbar({
							pageSize : pageSize,
							store : companystore,
							displayInfo : true,
							dispalyMsg : '显示第{0}条到{1}条记录，一共{2}条',
							emptyMsg : '没有记录'
						}),
				sm : sm,
				cm : cm,
				store : companystore,
				loadMask : true,
				loadMask : {
					msg : '正在加载数据...'
				},
				autoExpandColumn : 4
			});

	accountGrid.render(Ext.getBody());
	companystore.load();
	// 添加双击事件--Sami
	function rowdblclickFn(grid, rowindex, e) {
		grid.getSelectionModel().each(function(rec) {
			updateWin = new Ext.Window({
						title : '修改客户信息',
						width : 800,
						modal : true,
						items : [companyOperation(rec.get("company_code"), 1,
								companystore, true)],
						buttons : [{
									text : '确认',
									id : 'save',
									handler : function() {

										if (doupdate()) {
											updateWin.destroy();
										}

									}
								}, {
									text : '取消',
									id : 'cancel',
									handler : function() {
										updateWin.destroy();
									}
								}]
					});
			updateWin.show();
				// alert();
		});
	}

	accountGrid.addListener('rowdblclick', rowdblclickFn);
	addSystemAccountWin = addClientAdminRoleWin(accountGrid);

});

function InsertManager(code, chinesecode) {
	var panel = addSystemAccountWin.findById('addPanelForm');
	panel.findById('_company_code').setValue(code);
	panel.findById('_company_chinese_name').setValue(chinesecode);
	addSystemAccountWin.show();
}

function test2(value) {
	Ext.Msg.show({
		title : '提示',
		msg : '确认要启用此账户？',
		buttons : Ext.MessageBox.YESNO,
		fn : function(btn, text) {
			if (btn == 'yes') {
				Ext.Ajax.request({
							url : "UpdateStatusByCompanyCode.action?companyCode="
									+ value,
							method : 'post',
							success : function(response, result) {
								companystore.reload();
							}
						});
			} else if (btn == 'no') {
				return;
			}
		}
	});

}

function ShowUpdate(company_code, status) {
	var updateWindow = new Ext.Window({
				modal : true,
				width : 800,
				items : [companyOperation(company_code, 2, companystore, true)],
				buttons : [{
							text : '确认',
							id : 'save',
							handler : function() {
								if (doupdate()) {
									updateWindow.destroy();
								}
							}
						}, {
							text : '取消',
							id : 'cancel',
							handler : function() {
								updateWindow.destroy();
							}
						}]
			});
	updateWindow.show();
	Ext.getCmp('customTab').setActiveTab(Ext.getCmp('stopReason'));
}

function closeAccountWIn(closePanel) {
	closePanel.close();
}